﻿@{
    Layout = "~/Views/Shared/_Layout_Turorials.cshtml";
}
<h1>What's new in Orleans </h1>

<h2 id="v120httpsgithubcomdotnetorleansreleasestagv120-may-4th-2016"><a href="https://github.com/dotnet/orleans/releases/tag/v1.2.0">v1.2.0</a> May 4th 2016</h2>

<h3 id="release-notes">Release notes</h3>

<p>In addition to all the changes in 1.2.0-beta.</p>

<ul>
    <li><a href="https://github.com/dotnet/orleans/pull/1704">Azure storage 7.0 compatibility</a>.</li>
    <li>Updated to latest version of Consul and ZooKeeper NuGets.</li>
    <li><a href="https://github.com/dotnet/orleans/pull/1711">Added ability to throw exceptions that occur when starting silo</a>.</li>
</ul>

<h2 id="v120-betahttpsgithubcomdotnetorleansreleasestagv120-beta-april-18th-2016"><a href="https://github.com/dotnet/orleans/releases/tag/v1.2.0-beta">v1.2.0-beta</a> April 18th 2016</h2>

<h3 id="release-notes-1">Release notes</h3>

<ul>
    <li>
        Major improvements
        <ul>
            <li>Added an EventHub stream provider based on the same code that is used in Halo 5.</li>
            <li><a href="https://github.com/dotnet/orleans/pull/1586">Increased throughput by between 5% and 26% depending on the scenario.</a></li>
            <li>Migrated all but 30 functional tests to GitHub.</li>
            <li>Grain state doesn’t have to extend <code class="highlighter-rouge">GrainState</code> anymore (marked as <code class="highlighter-rouge">[Obsolete]</code>) and can be a simple POCO class.</li>
            <li><a href="https://github.com/dotnet/orleans/pull/963">Added support for per-grain-class</a> and <a href="https://github.com/dotnet/orleans/pull/965">global server-side interceptors.</a></li>
            <li><a href="https://github.com/dotnet/orleans/pull/1267">Added support for using Consul 0.6.0 as a Membership Provider.</a></li>
            <li><a href="https://github.com/dotnet/orleans/pull/1479">Support C# 6.</a></li>
            <li><a href="https://github.com/dotnet/orleans/pull/1455">Switched to xUnit for testing as a step towards CoreCLR compatibility.</a></li>
        </ul>
    </li>
    <li>
        Codegen &amp; serialization
        <ul>
            <li><a href="https://github.com/dotnet/orleans/pull/1137">Added support for generic type constraints in codegen.</a></li>
            <li><a href="https://github.com/dotnet/orleans/pull/1047">Added support for Newtonsoft.Json as a fallback serializer.</a></li>
            <li><a href="https://github.com/dotnet/orleans/pull/1319">Added generation of serializers for type arguments of <code class="highlighter-rouge">IAsyncObserver&lt;T&gt;</code>.</a></li>
            <li><a href="https://github.com/dotnet/orleans/pull/1369">Improved support for F# interfaces.</a></li>
            <li><a href="https://github.com/dotnet/orleans/pull/1501">Consolidated two compile time codegen NuGet packages into one <code class="highlighter-rouge">Microsoft.Orleans.OrleansCodeGenerator.Build</code>. <code class="highlighter-rouge">Microsoft.Orleans.Templates.Interfaces</code> and <code class="highlighter-rouge">Microsoft.Orleans.Templates.Grains</code> are now meta-packages for backward compatibility only.</a></li>
            <li><a href="https://github.com/dotnet/orleans/pull/1302">Moved to Newtonsoft.Json 7.0.1.</a></li>
        </ul>
    </li>
    <li>
        Programmatic config
        <ul>
            <li><a href="https://github.com/dotnet/orleans/pull/1411">Added helper methods for programmatic test configuration.</a></li>
            <li><a href="https://github.com/dotnet/orleans/pull/1622">Added helper methods to <code class="highlighter-rouge">AzureClient</code> and <code class="highlighter-rouge">AzureSilo</code> for easier programmatic config.</a></li>
            <li><a href="https://github.com/dotnet/orleans/pull/1623">Added extension methods for using programmatic config.</a></li>
            <li><a href="https://github.com/dotnet/orleans/pull/1629">Remove config filed from Server and Client NuGet packages.</a></li>
        </ul>
    </li>
    <li>
        Other
        <ul>
            <li><a href="https://github.com/dotnet/orleans/pull/1060">Improved support for SQL membership, reminders, and grain storage.</a></li>
            <li><a href="https://github.com/dotnet/orleans/pull/1356">Improved propagation of exception, so that the caller gets the originally thrown exception instead of an <code class="highlighter-rouge">AggregateException</code> wrapping it.</a></li>
            <li><a href="https://github.com/dotnet/orleans/pull/1376">Added a storage provider for Azure Blob (graduated from <code class="highlighter-rouge">OrleansContrib</code>).</a></li>
            <li><a href="https://github.com/dotnet/orleans/pull/1520">Start Reminder Service initial load in the background.</a></li>
            <li><a href="https://github.com/dotnet/orleans/pull/1429">Added automatic cleanup of dead client stream producers and consumers</a> and <a href="https://github.com/dotnet/orleans/pull/1669">this.</a></li>
            <li><a href="https://github.com/dotnet/orleans/pull/1675">Added GetPrimaryKeyString extension method for <code class="highlighter-rouge">IAddressable</code>.</a></li>
            <li><a href="https://github.com/dotnet/orleans/pull/1674">Added support for additional application directories.</a></li>
        </ul>
    </li>
    <li>Many other fixes and improvements.</li>
</ul>

<h2 id="v113httpsgithubcomdotnetorleansreleasestagv113-march-9th-2016"><a href="https://github.com/dotnet/orleans/releases/tag/v1.1.3">v1.1.3</a> March 9th 2016</h2>

<h3 id="release-notes-2">Release notes</h3>

<p>A patch release with a set of bug fixes.</p>

<ul>
    <li><a href="https://github.com/dotnet/orleans/pull/1345">Initialize SerializationManager before CodeGeneratorManager</a></li>
    <li><a href="https://github.com/dotnet/orleans/pull/1348">Avoid unnecessary table scan when finding reminder entries to delete</a></li>
    <li><a href="https://github.com/dotnet/orleans/pull/1351">Stop a stuck BlockingCollection.Take operation that caused thread leak on the client.</a></li>
    <li><a href="https://github.com/dotnet/orleans/pull/1381">Fixed Azure table property being not sanitized.</a></li>
    <li><a href="https://github.com/dotnet/orleans/pull/1384">Fixed String.Format arguments in DetailedGrainReport.ToString()</a></li>
    <li><a href="https://github.com/dotnet/orleans/pull/1405">Increment and DecrementMetric methods in Orleans.TraceLogger had same body</a></li>
    <li><a href="https://github.com/dotnet/orleans/pull/1414">Update the custom serializer warning message to adequately reflect the OSS status of Orleans</a></li>
    <li><a href="https://github.com/dotnet/orleans/pull/1503">Fix retry timeout when running under debugger</a></li>
    <li><a href="https://github.com/dotnet/orleans/pull/1478">Networking bug fix: Reset receive buffer on error.</a></li>
    <li><a href="https://github.com/dotnet/orleans/pull/1518">Fixed performance regression in networking</a></li>
    <li><a href="https://github.com/dotnet/orleans/pull/1520">Start ReminderService initial load in the background</a></li>
    <li><a href="https://github.com/dotnet/orleans/pull/1534">Safe load of types from failing assemblies in TypeUtils.GetTypes</a></li>
</ul>

<h2 id="community-virtual-meetup-9">Community Virtual Meetup #9</h2>
<p>
    <a href="https://github.com/nehmebilal">Nehme Bilal</a> and <a href="https://github.com/ReubenBond">Reuben Bond</a> <a href="https://youtu.be/w__D7gnqeZ0">talk about deploying Orleans</a> with <a href="https://github.com/Microsoft/Yams">YAMS</a> and <a href="https://azure.microsoft.com/en-gb/documentation/articles/service-fabric-overview/">Service Fabric</a>
    Fabruary 26st 2016
</p>

<h2 id="community-virtual-meetup-85">Community Virtual Meetup #8.5</h2>
<p>
    <a href="https://youtu.be/F1Yoe88HEvg">Networking discussion</a> hosted by <a href="https://github.com/jason-bragg">Jason Bragg</a>
    February 11th 2016
</p>

<h2 id="community-virtual-meetup-8">Community Virtual Meetup #8</h2>
<p>
    <a href="https://www.youtube.com/watch?v=4BiCyhvSOs4">Orleans core team present the roadmap</a>
    January 21st 2016
</p>

<h2 id="v112httpsgithubcomdotnetorleansreleasestagv112-january-20th-2016"><a href="https://github.com/dotnet/orleans/releases/tag/v1.1.2">v1.1.2</a> January 20th 2016</h2>

<h3 id="release-notes-3">Release notes</h3>

<p>A patch release with bug fixes, primarily for codegen and serializer corner cases.</p>

<ul>
    <li><a href="https://github.com/dotnet/orleans/pull/1137">Add support for generic type constraints in codegen</a></li>
    <li><a href="https://github.com/dotnet/orleans/pull/1178">Correctly specify struct type constraint in generated code</a></li>
    <li><a href="https://github.com/dotnet/orleans/pull/1182">fix issue:GetReminder throws exception when reminder don’t exists #1167</a></li>
    <li><a href="https://github.com/dotnet/orleans/pull/1240">Cleanup/fix usage of IsNested vs. IsNestedXXX &amp; serialize nested types.</a></li>
    <li><a href="https://github.com/dotnet/orleans/pull/1241">Correctly serialize [Obsolete] fields and properties.</a></li>
    <li><a href="https://github.com/dotnet/orleans/pull/1249">Nested serialization of Guid with Json serializer.</a></li>
    <li><a href="https://github.com/dotnet/orleans/pull/1261">Fix a race in StreamConsumer.SubscribeAsync.</a></li>
    <li><a href="https://github.com/dotnet/orleans/pull/1280">fix deepcopy issue #1278</a></li>
    <li><a href="https://github.com/dotnet/orleans/pull/1284">Check declaring types when performing accessibility checks for code gen.</a></li>
    <li><a href="https://github.com/dotnet/orleans/pull/1285">Allow to configure PubSub for SMS.</a></li>
    <li><a href="https://github.com/dotnet/orleans/pull/1270">Make Namespace access modifier public in ImplicitStreamSubscriptionAttribute. Add Provider property.</a></li>
</ul>

<h2 id="v111httpsgithubcomdotnetorleansreleasestagv111-january-11th-2016"><a href="https://github.com/dotnet/orleans/releases/tag/v1.1.1">v1.1.1</a> January 11th 2016</h2>

<h3 id="release-notes-4">Release notes</h3>

<p>A patch release for two bug fixes</p>

<ul>
    <li><a href="https://github.com/dotnet/orleans/pull/1134">Missing argument to trace format in TraceLogger.Initialize</a></li>
    <li><a href="https://github.com/dotnet/orleans/pull/1195">Make ConsoleText resilient to ObjectDisposedExceptions</a></li>
</ul>

<h2 id="community-virtual-meetup-7httpswwwyoutubecomwatchvfkl-ps8q9ac"><a href="https://www.youtube.com/watch?v=FKL-PS8Q9ac">Community Virtual Meetup #7</a></h2>
<p>
    Christmas Special - <a href="https://github.com/yevhen">Yevhen Bobrov</a> on <a href="https://github.com/yevhen/Orleankka">Orleankka</a>
    December 17th 2015
</p>

<h2 id="v110httpsgithubcomdotnetorleansreleasestagv110-december-14nd-2015"><a href="https://github.com/dotnet/orleans/releases/tag/v1.1.0">v1.1.0</a> December 14nd 2015</h2>

<h3 id="release-notes-5">Release notes</h3>

<ul>
    <li>New Roslyn-based codegen, compile time and run time</li>
    <li>
        Public APIs:
        <ul>
            <li>Core API for Event Sourcing</li>
            <li>Most methods of <code class="highlighter-rouge">Grain</code> class are now virtual</li>
            <li>ASP.NET vNext style Dependency Injection for grains</li>
            <li>New telemetry API</li>
        </ul>
    </li>
    <li>
        Portability:
        <ul>
            <li>Support for C# 6.0</li>
            <li>Improved support for F# and VB</li>
            <li>Code adjustments towards CoreCLR compliance</li>
            <li>Orleans assemblies are not strong-named anymore</li>
        </ul>
    </li>
    <li>
        SQL:
        <ul>
            <li><code class="highlighter-rouge">OrleansSQLUtils.dll</code> for SQL-related functionality</li>
            <li>MySQL is now supported as a cluster membership store</li>
            <li>Storage provider for SQL Server</li>
        </ul>
    </li>
    <li>
        Serialization:
        <ul>
            <li>Support for pluggable external serializers</li>
            <li>Bond serializer plugin</li>
            <li>Support for Json.Net as a fallback serializer</li>
            <li>Added <code class="highlighter-rouge">[KnownType]</code> attribute for generating serializers for arbitrary types</li>
        </ul>
    </li>
    <li>Upgraded to Azure Storage 5.0</li>
    <li>Upgraded to .NET 4.5.1</li>
    <li>Other fixes and improvements</li>
</ul>

<h2 id="community-virtual-meetup-6">Community Virtual Meetup #6</h2>
<p>
    <a href="https://www.youtube.com/watch?v=fOl8ophHtug">MSR PhDs on Geo Distributed Orleansp</a>
    October 23rd 2015
</p>

<h2 id="v1010httpsgithubcomdotnetorleansreleasestagv1010-september-22nd-2015"><a href="https://github.com/dotnet/orleans/releases/tag/v1.0.10">v1.0.10</a> September 22nd 2015</h2>

<h3 id="release-notes-6">Release notes</h3>

<h4 id="general">General:</h4>
<ul>
    <li>No SDK msi anymore, only NuGets from now on</li>
    <li>Removed support for grain state interfaces and code generation of state classes</li>
    <li>Removed code generated  MyGrainFactory.GetGrain()  factory methods</li>
    <li>StorageProvider  attribute is now optional</li>
    <li>Membership and reminder table implementations were made pluggable</li>
    <li>Improvements to  ObserverSubscriptionManager</li>
    <li>Strong guarantee for specified max number of  StatelessWorker  activations per silo</li>
    <li>General purpose interface for sending run time control commands to providers</li>
    <li>Named event to trigger silo shutdown</li>
</ul>

<h4 id="streaming">Streaming:</h4>
<ul>
    <li>Support for multiple  ImplicitSubscription  attributes for streams</li>
    <li>Support for rewinding of implicit stream subscriptions</li>
    <li>Propagate request context via persistent streams</li>
    <li>More options for stream Queue Balancers</li>
    <li>Delayed repartitioning of stream queues</li>
    <li>Improved cleanup of client stream producers/consumers when client shuts down</li>
    <li>Config option and management grain API for controlling start/stop state of stream pulling agents</li>
    <li>Azure Queue stream provider fixed to guarantees at least once delivery</li>
    <li>Numerous bug fixes and improvements, mostly to streaming</li>
</ul>

<h2 id="v109httpsgithubcomdotnetorleansreleasestagv109-july-15th--2015"><a href="https://github.com/dotnet/orleans/releases/tag/v1.0.9">v1.0.9</a> July 15th  2015</h2>

<h3 id="this-release-includes-several-significant-api-changes-that-require-adjustments-in-existing-code-created-with-v108-or-earlier-versions-of-orleans">This release includes several significant API changes that require adjustments in existing code created with v1.0.8 or earlier versions of Orleans</h3>

<p><strong>1. <code class="highlighter-rouge">GrainFactory</code> is not a static class anymore, so that the default implementation can be substituted for testing and other reasons.</strong></p>

<p>Within grain code one can still use code like <code class="highlighter-rouge">GrainFactory.GetGrain&lt;IFoo&gt;(grainKey)</code> because <code class="highlighter-rouge">Grain</code> class now has a <code class="highlighter-rouge">GrainFactory</code> property, which makes the above code translate to <code class="highlighter-rouge">base.GrainFactory.GetGrain&lt;IFoo&gt;(grainKey)</code>. So no change is necessary for such code.</p>

<p>Within the client (frontend) context the default <code class="highlighter-rouge">GrainFactory</code> is available as a property on the <code class="highlighter-rouge">GrainClient</code> class. So, the code that used to be <code class="highlighter-rouge">GrainFactory.GetGrain&lt;IFoo&gt;(grainKey)</code> needs to be changed to <code class="highlighter-rouge">GrainClient.GrainFactory.GetGrain&lt;IFoo&gt;(grainKey)</code></p>

<p><strong>2. <code class="highlighter-rouge">Read/Write/ClearStateAsync</code> methods methods that on grain state were moved from state objects to <code class="highlighter-rouge">Grain</code> class</strong></p>

<p>Wherever you have grain code like <code class="highlighter-rouge">this.State.WriteStateAsync()</code>, it needs to change to <code class="highlighter-rouge">this.WriteStateAsync()</code>. Similar adjustments need to be made to usage of <code class="highlighter-rouge">ReadeStateAsync()</code> and <code class="highlighter-rouge">CleareStateAsync()</code>.</p>

<p><strong>3. Binaries have been removed from the Orleans SDK</strong></p>

<p>If your projects still reference those binaries directly from the SDK folder, you need to switch to using <a href="Nugets">NuGet packages</a> instead. If you are already consuming Orleans via NuGet, you are good.</p>

<p><strong>4. Local Silo test environment has been removed from the Orleans SDK</strong></p>

<p>If you were using the Local Silo environment from the SDK folder for testing your grains, you need to add a silo host project to your solution using the “Orleans Dev/Test Host” Visual Studio project template. Before you do that, make sure you install the <a href="https://github.com/dotnet/orleans/releases/download/v1.0.9/orleans_setup.msi">v1.0.9 version of the SDK</a>. Refer to <a href="https://github.com/dotnet/orleans/tree/master/Samples">samples</a> for examples of how that is done.</p>

<h3 id="release-notes-7">Release notes</h3>

<ul>
    <li>Graceful shutdown of a silo with deactivation of all grains hosted in it.</li>
    <li>
        Support for Dependency Injection and better testability of grains:
        <ul>
            <li>Direct instantiation of grains with passing <code class="highlighter-rouge">IGrainIdentity</code> and <code class="highlighter-rouge">IGrainRuntime</code> to constructor.</li>
            <li><code class="highlighter-rouge">IGrainRuntime</code> is a mockable interface that includes a set of system service interfaces, also mockable.</li>
            <li><code class="highlighter-rouge">GrainFactory</code> is a non-static class that is accessed via <code class="highlighter-rouge">base.GrainFactory</code>  from within a grain and via  <code class="highlighter-rouge">GrainClient.GrainFactory</code>  on the client.</li>
        </ul>
    </li>
    <li>Deprecated generated per-interface <code class="highlighter-rouge">GetGrain()</code> static factory methods.</li>
    <li>Added support for concrete grain state classes, deprecated grain state interfaces and code generation of grain classes.</li>
    <li>Removed <code class="highlighter-rouge">Read/Write/ClearStateAsync</code> methods from <code class="highlighter-rouge">IGrainState</code> and moved them to <code class="highlighter-rouge">Grain&lt;T&gt;</code>.</li>
    <li>Performance optimizations of messaging with up to 40% improvements in throughput.</li>
    <li>Added ZooKeeper based cluster membership storage option.</li>
    <li>Removed compile time dependency on Microsoft.WindowsAzure.ServiceRuntime.dll.</li>
    <li>Consolidated dependencies on Azure in OrleansAzureUtils.dll, which is now optional.</li>
    <li>Refactored SQL system store to be more robust and vendor agnostic.</li>
    <li>Added streaming event deliver policy and failure reporting.</li>
    <li>Changed VS project templates to use only NuGet packages and not the SDK.</li>
    <li>Removed binaries and local silo environment from the SDK.</li>
    <li>Numerous bug fixes and other improvements.</li>
</ul>

<h2 id="v108httpsgithubcomdotnetorleansreleasestagv108-may-26th--2015"><a href="https://github.com/dotnet/orleans/releases/tag/v1.0.8">v1.0.8</a> May 26th  2015</h2>

<h3 id="release-notes-8">Release notes</h3>

<ul>
    <li>Fixed versions of references Orleans NuGet packages to match the current one.</li>
    <li>Switched message header keys from strings to enums for performance.</li>
    <li>Fixed a deadlock issue in deactivation process.</li>
    <li>Added a NuGet package to simplify testing of grain projects - Microsoft.Orleans.TestingHost.</li>
    <li>Fixed regression of reporting codegen error to Visual Studio Errors window.</li>
    <li>Added version to SDK msi product and folder name.</li>
    <li>Other fixes and improvements.</li>
</ul>

<h2 id="community-virtual-meetup-5httpswwwyoutubecomwatchvesepblfy554"><a href="https://www.youtube.com/watch?v=eSepBlfY554">Community Virtual Meetup #5</a></h2>
<p>
    <a href="https://github.com/gabikliot">Gabriel Kliot</a> on the new Orleans Streaming API
    May 22nd 2015
</p>

<h2 id="v107httpsgithubcomdotnetorleansreleasestagv107-may-15th--2015"><a href="https://github.com/dotnet/orleans/releases/tag/v1.0.7">v1.0.7</a> May 15th  2015</h2>

<h3 id="release-notes-9">Release notes</h3>

<ul>
    <li>Major refactoring of the stream adapter API.</li>
    <li>Improvements to the streaming API to support subscription multiplicity.</li>
    <li>Made IAddressable.AsReference strongly-typed.</li>
    <li>Added a Chocolatey package.</li>
    <li>Added support for private storage keys for testing.</li>
    <li>Replaced ExtendedPrimaryKeyAttribute with IGrainWithGuidCompoundKey and IGrainWithIntegerCompoundKey.</li>
    <li>Added support for grain classes that are implementations of generic grain interfaces with concrete type arguments.</li>
    <li>Numerous other fixes and improvements.</li>
</ul>

<h2 id="community-virtual-meetup-4httpswwwyoutubecomwatchv56xz68ltb9c"><a href="https://www.youtube.com/watch?v=56Xz68lTB9c">Community Virtual Meetup #4</a></h2>
<p>
    <a href="https://github.com/ReubenBond">Reuben Bond</a> on using Orleans at FreeBay
    April 15th 2015
</p>

<h2 id="v105httpsgithubcomdotnetorleansreleasestagv105-march-30th--2015"><a href="https://github.com/dotnet/orleans/releases/tag/v1.0.5">v1.0.5</a> March 30th  2015</h2>

<h3 id="release-notes-10">Release notes</h3>

<ul>
    <li>Major reorganization of NuGet packages and project templates.</li>
    <li>Fixes to reflection-only assembly inspection and loading for side-by-side versioning.</li>
    <li>Improved scalability of observers.</li>
    <li>Programmatic configuration of providers.</li>
    <li>Numerous other fixes and improvements.</li>
</ul>

<h2 id="community-virtual-meetup-3httpswwwyoutubecomwatchv07up88bpl20"><a href="https://www.youtube.com/watch?v=07Up88bpl20">Community Virtual Meetup #3</a></h2>
<p>
    <a href="https://github.com/yevhen">Yevhen Bobrov</a> on a Uniform API for Orleans
    March 6th 2015
</p>

<h2 id="community-virtual-meetup-2httpswwwyoutubecomwatchvd4kjksffnji"><a href="https://www.youtube.com/watch?v=D4kJKSFfNjI">Community Virtual Meetup #2</a></h2>
<p>
    Orleans team live Q&amp;A and roadmap
    January 12th 2015
</p>

<h2 id="orleans-open-source-v10-update-january-2015">Orleans Open Source v1.0 Update (January 2015)</h2>

<p>###Initial stable production-quality release.</p>

<p>Since the September 2014 Preview Update we have made a small number of public API changes, mainly related to clean up and more consistent naming. Those changes are summarized below:</p>

<h3 id="public-type-names-changes">Public Type Names Changes</h3>

<table>
    <thead>
        <tr>
            <th>Old API</th>
            <th>New API</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>OrleansLogger</td>
            <td>Logger</td>
        </tr>
        <tr>
            <td>OrleansClient</td>
            <td>GrainClient</td>
        </tr>
        <tr>
            <td>Grain.ActivateAsync</td>
            <td>Grain.OnActivateAsync</td>
        </tr>
        <tr>
            <td>Grain.DeactivateAsync</td>
            <td>Grain.OnDeactivateAsync</td>
        </tr>
        <tr>
            <td>Orleans.Host.OrleansSiloHost</td>
            <td>Orleans.Runtime.Host.SiloHost</td>
        </tr>
        <tr>
            <td>Orleans.Host.OrleansAzureSilo</td>
            <td>Orleans.Runtime.Host.AzureSilo</td>
        </tr>
        <tr>
            <td>Orleans.Host.OrleansAzureClient</td>
            <td>Orleans.Runtime.Host.zureClient</td>
        </tr>
        <tr>
            <td>Orleans.Providers.IOrleansProvider</td>
            <td>Orleans.Providers.IProvider</td>
        </tr>
        <tr>
            <td>Orleans.Runtime.ActorRuntimeException</td>
            <td>Orleans.Runtime.OrleansException</td>
        </tr>
        <tr>
            <td>OrleansConfiguration</td>
            <td>ClusterConfiguration</td>
        </tr>
        <tr>
            <td>LoadAwarePlacementAttribute</td>
            <td>ActivationCountBasedPlacementAttribute</td>
        </tr>
    </tbody>
</table>

<h3 id="other-changes">Other Changes</h3>

<ul>
    <li>All grain placement attribute (including [<code class="highlighter-rouge">StatelessWorker</code>]) now need to be defined on grain implementation class, rather than on grain interface.</li>
    <li><code class="highlighter-rouge">LocalPlacementAttribute</code> was removed. There are now only <code class="highlighter-rouge">StatelessWorker</code> and <code class="highlighter-rouge">PreferLocalPlacement</code>.</li>
    <li>Support for Reactive programming with Async RX.</li>
    <li>
        Orleans NuGet packages are now published on NuGet.org.
        See this wiki page for advice on how to <a href="Convert-Orleans-v0.9-csproj-to-Use-v1.0-NuGet">convert legacy Orleans grain interface / class projects over to using NuGet packages</a>.
    </li>
</ul>

<h2 id="community-virtual-meetup-1httpwwwyoutubecomwatchv6coq8xzlopg"><a href="http://www.youtube.com/watch?v=6COQ8XzloPg">Community Virtual Meetup #1</a></h2>
<p>
    <a href="https://github.com/jkonecki">Jakub Konecki</a> on Event Sourced Grains
    December 18th 2014
</p> 